import javax.swing.tree.TreeNode;

public class Test {

    public static void main(String[] args) {

    }

    //判断两个树是否相同
    // public boolean isSameTree(TreeNode p, TreeNode q) {
    //     //1.判断结构是否相同
    //     if(p != null && q == null || p == null && q != null){
    //         return false;
    //     }
    //
    //     //p和q 要不都是null要不都不是null
    //     if(p == null && q == null){
    //         return true;
    //     }
    //
    //     if(p.val != q.val){
    //         return false;
    //     }
    //
    //     return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
    // }

    //翻转二叉树

    // public boolean isSubtree(TreeNode root, TreeNode subRoot) {
    //     if(root == null){
    //         return false;
    //     }
    //     if(isSameTree(root,subRoot)){
    //         return true;
    //     }
    //
    //     return isSubtree(root.left,subRoot) ||
    //             isSubtree(root.right,subRoot);
    //
    // }
    //
    // public boolean isSameTree(TreeNode p, TreeNode q) {
    //     //1.判断结构是否相同
    //     if(p != null && q == null || p == null && q != null){
    //         return false;
    //     }
    //
    //     //p和q 要不都是null要不都不是null
    //     if(p == null && q == null){
    //         return true;
    //     }
    //
    //     if(p.val != q.val){
    //         return false;
    //     }
    //
    //     return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
    // }

    //翻转二叉树
    // public TreeNode invertTree(TreeNode root) {
    //     if(root == null){
    //         return null;
    //     }
    //
    //         if(root.left == null && root.right == null){
    //                  return root;
    //         }
    //     TreeNode tmp = root.left;
    //     root.left = root.right;
    //     root.right = tmp;
    //
    //     invertTree(root.left);
    //     invertTree(root.right);
    //     return root;
    // }

    //对称二叉树
    // public boolean isSymmetric(TreeNode root) {
    //     if(root == null){
    //         return true;
    //     }
    //
    //     return isSymmetric2(root.left,root.right);
    //
    // }
    //
    // public boolean isSymmetric2(TreeNode rootLeft,TreeNode rootRight){
    //     if(rootLeft == null && rootRight == null){
    //         return true;
    //     }
    //
    //     if(rootLeft == null && rootRight != null ||
    //             rootLeft != null && rootRight == null){
    //         return false;
    //     }
    //
    //     if(rootLeft.val != rootRight.val){
    //         return false;
    //     }
    //
    //     return isSymmetric2(rootLeft.left,rootRight.right) &&
    //             isSymmetric2(rootLeft.right,rootRight.left);
    // }

}
